![]() | EVALUACIÓN Y NO-EVALUACIÓN |
x° // no evaluar x o autoevaluar x
- (x = 7)
(x = x+1) // ev. x=8
x
no se evalúa y sí la segunda.
(x*2 + 1)°/(x° = 3) // ev. (3*2 + 1)
(x*2 + 1)/(x° = 3) // ev. 7
(x° = (3+2)°) // ev. (x = (3+2))
(y° = (x x+1 x+2)°) // ev. (y = (x x+1 x+2))
(x = 0)
y // ev. (0 1 2)
(x = 5)
y // ev. (5 6 7)
y
, se evalúa la expresión (x x+1 x+2)
con el valor de x
en cada momento.
(y° = (2*x + 1)°) // ev. (y = (2*x + 1))
(x = 3)
y+9 // ev. (2*3 + 1 + 9) ev. 16
(x = 4)
y*y // ev. 9*9 ev. 81
x°
es el “contenedor” (o “continente”) de nombre x
.
x
se refiere al “contenido” o valor de x
.
(x° = a)
, x
es el contenedor y a
el contenido.
(x = abc)
x\2 // ev. b (hace referencia al contenido de la segunda posición de x)
(x\2)° // ev. x\2 (hace referencia a la segunda posición de x)
(x\2 = u) // (sustituye el contenido de la segunda posición de x por u)
x // ev. auc
(x = {a b c}
x↓ // ev. a b c (expresión abierta)
(x↓ = u) // (sustituye el contenido de x por u)
x // ev. {u}
x°°
indica que hay una evaluación doblemente diferida, es decir, se requieren dos “usos” de x
para que se evalúe. Análogamente para x°°°
, x°°°°
, etc.
(x = (123+4)°°°) // ev. (x = (123+4)°°)
(y = x) // ev. (y = (123+4)°)
(z = y) // ev. (z = 123+4)
(u = z) // ev. (u = 127)
(x = 2)
(y = (3*x + 1)°°) // ev. (y = 3*x + 1)°)
(z = y) // ev. (z = 3*x + 1)
(u = z) // ev. (u = (3*2 + 1)) ev. (u = 7)
(a = 3)
(a +° 2) // ev. 3+2
(a = 1)
(b = 2)
(a + (a *° b)) // ev. (1 + 1*2)
(x = 3)
(x + (y*x)°) // ev. (3 + y*x)
(a = 1)
(b = 2)
(a (a b)° b) // ev. (1 ab 2)
(x = 44)
(x =° 123) // ev. x=123
x // ev. 123
x
)
3=7
, de tal forma que si tenemos (x = 3231)
, entonces x
se evaluaría como 7271
.
(x = (a+(b+c)))° eq. (x° =° (a° +° (b° +° c°)))
(x = 7)
(y = 4)
(z° = (x° + 1 + y)°) // ev. (z = (x° + 1 + y)
(u = z) // ev. (u = (x + 1 + 4)) ev. (u = x+5)
u // ev. 12
x(°°)
indica autoaplicar “no-evaluación” al propio operador “no- evaluación”. En este caso, la “no-evaluación” afecta al propio operador de “no-evaluación”, pero no a x
. El resultado es
x (evaluado) junto con el operador de “no-evaluación”. Por ejemplo,
(x = 3)
(2*x + a)(°°) // ev. (6 + a)°
((x = 01)° = Madrid) // ev. (x=01 = Madrid)
(x = 01) // ev. Madrid
((x = 01)° = (x = Madrid)°) // ev. (x=01 = (x = Madrid))
(x = 01) // ev. x=Madrid
( (°) = () ) // secuencia vacía
( {°} = {} ) // conjunto vacío